Systems and methods for designing haptics using speech commands

ABSTRACT

Systems and methods for designing haptics using speech commands are disclosed. One illustrative system described herein includes: a processor configured to: receive an audio signal from an audio capture device, the audio signal associated with vocal user interaction; determine a haptic effect based in part on the audio signal, the haptic effect configured to be output by a haptic output device; and store the haptic effect on a data store.

FIELD OF THE INVENTION

This application relates to designing haptic effects, and moreparticularly to systems and methods for designing haptic effects usingspeech commands.

BACKGROUND

Haptic-enabled devices have become increasingly popular as arehaptic-enabled environments. For instance, mobile and other devices maybe configured with touch-sensitive surfaces so that a user can provideinput by touching portions of the touch-sensitive display.Alternatively, gesture input and other input for haptic enabled devicesor environments are also becoming popular for wearables, VR or ARdevices, automotive, gaming, live events, group events and otherenvironments. Similarly, systems and methods for voice recognition andcontrol of electronic devices are becoming more common. There istherefore a need for additional systems for designing haptic effects.

SUMMARY

In one embodiment, a system according to the present disclosurecomprises: a processor configured to: receive an audio signal from anaudio capture device, the audio signal associated with vocal userinteraction; determine a haptic effect based in part on the audiosignal, the haptic effect configured to be output by a haptic outputdevice; and store the haptic effect on a data store.

In another embodiment, a method according to the present disclosurecomprises: receiving an audio signal from an audio capture device, theaudio signal associated with vocal user interaction; determining ahaptic effect based in part on the audio signal, the haptic effectconfigured to be output by a haptic output device; and storing thehaptic effect on a data store

In yet another embodiment, a non-transitory computer readable medium maycomprise program code, which when executed by a processor is configuredto cause the processor to: receive an audio signal from an audio capturedevice, the audio signal associated with vocal user interaction;determine a haptic effect based in part on the audio signal, the hapticeffect configured to be output by a haptic output device; and store thehaptic effect on a data store.

These illustrative embodiments are mentioned not to limit or define thelimits of the present subject matter, but to provide examples to aidunderstanding thereof. Illustrative embodiments are discussed in theDetailed Description, and further description is provided there.Advantages offered by various embodiments may be further understood byexamining this specification and/or by practicing one or moreembodiments of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure is set forth more particularly in theremainder of the specification. The specification makes reference to thefollowing appended figures.

FIG. 1A shows an illustrative system for designing haptic effects usingspeech commands according to one embodiment of the present disclosure.

FIG. 1B shows an external view of one embodiment of the system shown inFIG. 1A.

FIG. 1C illustrates an external view of another embodiment of the systemshown in FIG. 1A.

FIG. 2A illustrates an example embodiment for designing haptic effectsusing speech commands according to one embodiment of the presentdisclosure.

FIG. 2B illustrates another example embodiment for designing hapticeffects using speech commands according to one embodiment of the presentdisclosure.

FIG. 3A illustrates another example embodiment for designing hapticeffects using speech commands according to one embodiment of the presentdisclosure.

FIG. 3B illustrates another example embodiment for designing hapticeffects using speech commands according to one embodiment of the presentdisclosure.

FIG. 4 is a flow chart of method steps for designing haptic effectsusing speech commands according to one embodiment of the presentdisclosure.

FIG. 5 is a flow chart of method steps for designing haptic effectsusing speech commands according to one embodiment of the presentdisclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to various and alternativeillustrative embodiments and to the accompanying drawings. Each exampleis provided by way of explanation, and not as a limitation. It will beapparent to those skilled in the art that modifications and variationscan be made. For instance, features illustrated or described as part ofone embodiment may be used in another embodiment to yield a stillfurther embodiment. Thus, it is intended that this disclosure includemodifications and variations as come within the scope of the appendedclaims and their equivalents.

Illustrative Example of a System for Designing Haptic Effects UsingSpeech Commands

One illustrative embodiment of the present disclosure comprises anelectronic device, such as a tablet, e-reader, mobile phone, or computersuch as a laptop or desktop computer, wearable device, or interface forVirtual Reality (VR) or Augmented Reality (AR). The electronic devicecomprises a display (such as a touch-screen display), a memory, and aprocessor in communication with each of these elements. In theillustrative embodiment, the electronic device comprises a haptic outputdevice configured to output haptic effects. Further, the illustrativeelectronic device may be configured to receive user interaction withconventional interface devices, e.g., one or more of a touchscreen,mouse, joystick, multifunction controller, etc.

In the illustrative embodiment the electronic device is furtherconfigured to receive vocal user interaction, e.g., via a microphone.The electronic device further comprises a processor programmed toprocess audio received from the microphone and determine informationassociated with the vocal user interaction. For example, theillustrative electronic device may comprise programming to understandspoken words, e.g., Automatic Speech Recognition (ASR) techniques orspeech-to-text, such as Hidden Markov Model (HMM), Gaussian MixtureModel (GMM), Deep Learning etc. In the illustrative embodiment theelectronic device is further configured to determine a haptic effectbased on the vocal user interaction.

In the illustrative embodiment, the vocal user interaction may compriseany man-made sound. In one embodiment, the vocal user interactioncomprises speech describing the desired haptic effect. For example, thespeech may comprise description of characteristics of a haptic effect,e.g., speech describing a desired waveform, such as one or more of: awave shape, a frequency, an intensity, a type, or a duration. Theillustrative electronic device may use this vocal user interaction togenerate a haptic signal that will match the desired characteristics.Further in the illustrative embodiment the vocal user interaction maycomprise a description of a concept associated with the desired hapticeffect, e.g., impact, explosion, or rain. In such an embodiment, theelectronic device will determine a haptic effect with characteristics tosimulate that concept. In yet another example, the vocal userinteraction may comprise a sound that mimics the desired haptic effect.In such an embodiment, the electronic device will determine a hapticeffect that is associated with the sound.

In some embodiments, the audible interaction may comprise a mix of theembodiments described above. For example, a user may describe an effectby saying: “provide an explosion effect with a BOOM of 200 ms at fullmagnitude and a 50 Hz frequency.” In such an embodiment, the electronicdevice will determine a haptic effect that matches the descriptionprovided by the user.

In the illustrative embodiment, the electronic device may comprisesoftware to generate new waveforms associated with haptic effects.Further, the electronic device may be configured to modify apre-existing haptic effect. For example, the user may describe a raineffect with a higher frequency, and the electronic device may increasethe frequency of the haptic effect associated with rain, e.g., byincreasing the frequency and/or amplitude of the haptic signal. Theelectronic device may be configured to search a remote or local databaseof haptic effects to identify an effect with the desiredcharacteristics. Alternatively, in some embodiments, the database maycomprise audio and/or video files that the system may compare to audioand/or visual input to determine similarities, and thus select a hapticeffect based on similarities between the input and the file.

In the illustrative embodiment, the electronic device is configured toreceive a pre-existing haptic signal and modify that haptic signal tomatch the desired effects. For example, the electronic device may searcha database to locate haptic effects. This database may comprise a largenumber of haptic effects organized by tags. The processor may beconfigured to extract tags associated with the determined speech, e.g.,tags associated with specific words, and locate haptic effects thatmatch the tags in the determined speech. For example, the user maydescribe a haptic effect associated with rain, and the electronic devicemay search a database of haptic effects for a haptic effect with a tagassociated with rain.

In some embodiments, the electronic device may be further configured toenable the user to store haptic effects in a database. For example, whenthe user creates a new haptic effect or modifies an existing hapticeffect, the user can then save that haptic effect to the database.Further, the user may be able to create tags associate with thedatabase, e.g., tags such as “explosion,” car wreck,” “wrecking ball,”etc. These haptic effects may be associated with events for use in asoftware application, e.g., an audio application, video application,gaming application, and/or application for VR or AR. Further, the usermay be able to enhance the database by creating new tags for existinghaptic effects. For example, when the user experiences a haptic effect,the user may be able to create a new tag associated with the hapticeffect. This new tag may be descriptive of the haptic effect, e.g.,“hard collision,” “breaking glass bottles,” etc., to enable the databaseto be searched more easily and efficiently. Further, in someembodiments, the user may be able to apply tags to video and/or audiosegments with associated haptic effects to further enhance thesearchability of the database.

In the illustrative embodiment, once the haptic effect is determined itmay be stored in a memory, e.g., a local or remote data store.Alternatively or additionally, the electronic device may output thehaptic effect via a haptic output device. In some embodiments the hapticeffect may be output along with audio and/or video effects. Theseeffects may enhance realism of an AR or VR experience, or be outputalong with an audio or video effect. Further, in the illustrativeembodiment, a user may be given the option to confirm that theelectronic device generated the desired haptic effect. In theillustrative embodiment, the haptic effect may not be stored unless theuser provides this confirmation.

This illustrative example is given to introduce the reader to thegeneral subject matter discussed herein and the disclosure is notlimited to this example. The following sections describe variousadditional non-limiting examples of the present disclosure.

Illustrative Systems for Designing Haptic Effects Using Speech Commands

FIG. 1A shows an illustrative system 100 for designing haptic effectsusing speech commands. Particularly, in this example, system 100comprises a computing device 101 having a processor 102 interfaced withother hardware via bus 106. A memory 104, which can comprise anysuitable tangible (and non-transitory) computer-readable medium such asRAM, ROM, EEPROM, or the like, embodies program components thatconfigure operation of the computing device 101. In this example,computing device 101 further includes one or more network interfacedevices 110, input/output (I/O) interface components 112, and additionalstorage 114.

Network device 110 can represent one or more of any components thatfacilitate a network connection. Examples include, but are not limitedto, wired interfaces such as Ethernet, USB, IEEE 1394, and/or wirelessinterfaces such as IEEE 802.11, Bluetooth, or radio interfaces foraccessing cellular telephone networks (e.g., transceiver/antenna foraccessing a CDMA, GSM, UMTS, or other mobile communications network).

I/O components 112 may be used to facilitate connection to devices suchas one or more displays, headsets comprising displays (e.g., for VR orAR), curved displays (e.g., the display includes angled surfacesextended onto one or more sides of computing device 101 on which imagesmay be displayed), keyboards, mice, speakers, microphones, cameras(e.g., a front and/or a rear facing camera on a mobile device) and/orother hardware used to input data or output data. Storage 114 representsnonvolatile storage such as magnetic, optical, or other storage mediaincluded in device 101.

Audio/visual output device(s) 115 comprise one or more devicesconfigured to receive signals from processor(s) 102 and provide audio orvisual output to the user. For example, in some embodiments,audio/visual output device(s) 115 may comprise a display such as atouch-screen display, LCD display, plasma display, CRT display,projection display, a headset comprising a display for each eye (e.g.,for use in VR or AR), or some other display known in the art. Further,audio/visual output devices may comprise one or more speakers configuredto output audio to a user.

System 100 further includes a touch surface 116, which, in this example,is integrated into device 101. Touch surface 116 represents any surfacethat is configured to sense touch input of a user. In some embodiments,touch surface 116 may be configured to detect additional informationassociated with the touch input, e.g., the pressure, speed of movement,acceleration of movement, temperature of the user's skin, or some otherinformation associated with the touch input. One or more sensors 108 maybe configured to detect a touch in a touch area when an object contactsa touch surface and provide appropriate data for use by processor 102.Any suitable number, type, or arrangement of sensors can be used. Forexample, resistive and/or capacitive sensors may be embedded in touchsurface 116 and used to determine the location of a touch and otherinformation, such as pressure. As another example, optical sensors witha view of the touch surface may be used to determine the touch position.

Further, in some embodiments, touch surface 116 and/or sensor(s) 108 maycomprise a sensor that detects user interaction without relying on atouch sensor. For example, in one embodiment, the sensor may comprise asensor configured to use electromyography (EMG) signals to detectpressure applied by a user on a surface. Further, in some embodiments,the sensor may comprise RGB or thermal cameras and use images capturedby these cameras to estimate an amount of pressure the user is exertingon a surface.

In some embodiments, sensor 108 and touch surface 116 may comprise atouch-screen display or a touch-pad. For example, in some embodiments,touch surface 116 and sensor 108 may comprise a touch-screen mountedovertop of a display configured to receive a display signal and outputan image to the user. In other embodiments, the sensor 108 may comprisean LED detector. For example, in one embodiment, touch surface 116 maycomprise an LED finger detector mounted on the side of a display. Insome embodiments, the processor is in communication with a single sensor108, in other embodiments, the processor is in communication with aplurality of sensors 108, for example, a first touch screen and a secondtouch screen.

In some embodiments one or more sensor(s) 108 further comprise one ormore sensors configured to detect movement of the mobile device (e.g.,accelerometers, gyroscopes, cameras, GPS, or other sensors). Thesesensors may be configured to detect user interaction that moves thedevice in the X, Y, or Z plane. The sensor 108 is configured to detectuser interaction, and based on the user interaction, transmit signals toprocessor 102. In some embodiments, sensor 108 may be configured todetect multiple aspects of the user interaction. For example, sensor 108may detect the speed and pressure of a user interaction, and incorporatethis information into the interface signal. Further, in someembodiments, the user interaction comprises a multi-dimensional userinteraction away from the device. For example, in some embodiments acamera associated with the device may be configured to detect usermovements, e.g., hand, finger, body, head, eye, or feet motions orinteractions with another person or object.

The computing device further comprises an audio capture device 117.Audio capture device 117 comprises one or more components configured todetect vocal user interaction and transmit signals associated with thevocal user interaction to processor(s) 102. In some embodiments, audiocapture device 117 may comprise one or more microphones, e.g., audiocapture device 117 may comprise one or more of: a dynamic microphone, acondenser microphone, a piezoelectric microphone, a MEMS(MicroElectrical-Mechanical System) microphone, a laser microphone, or afiber optic microphone. Further, in some embodiments, audio capturedevice 117 and an audio output device may be incorporated into a singlecomponent.

In this example, a haptic output device 118 in communication withprocessor 102 is coupled to touch surface 116. In some embodiments,haptic output device 118 is configured, in response to a haptic signal,to output a haptic effect simulating a compliance of the touch surface.Additionally or alternatively, haptic output device 118 may providevibrotactile haptic effects that move the touch surface in a controlledmanner. Some haptic effects may utilize an actuator coupled to a housingof the device, and some haptic effects may use multiple actuators insequence and/or in concert. For example, in some embodiments, a surfacetexture may be simulated by vibrating the surface at differentfrequencies. In such an embodiment haptic output device 118 may compriseone or more of, for example, a piezoelectric actuator, an electricmotor, an electro-magnetic actuator, a voice coil, a shape memory alloy,an electro-active polymer, a solenoid, an eccentric rotating mass motor(ERM), or a linear resonant actuator (LRA). In some embodiments, hapticoutput device 118 may comprise a plurality of actuators, for example anERM and an LRA. In still other embodiments, the haptic output device 118may use non-actuated haptics (e.g., air, fluid, or ultrasonic output)that provide resistance as a means to convey rougher surfaces.

In some embodiments, the haptic effect may be modulated based on othersensed information about user interaction, e.g., relative position ofhands in a virtual environment, object position in a VR/AR environment,object deformation, relative object interaction in a GUI, UI, AR, VR,etc. In still other embodiments, methods to create the haptic effectsinclude the variation of an effect of short duration where the magnitudeof the effect varies as a function of a sensed signal value (e.g., asignal value associated with user interaction). In some embodiments,when the frequency of the effect can be varied, a fixed perceivedmagnitude can be selected and the frequency of the effect can be variedas a function of the sensed signal value.

Although a single haptic output device 118 is shown here, embodimentsmay use multiple haptic output devices of the same or different type tooutput haptic effects. For example, in one embodiment, a piezoelectricactuator may be used to displace some or all of touch surface 116vertically and/or horizontally at ultrasonic frequencies, such as byusing an actuator moving at frequencies greater than 20-25 kHz in someembodiments. In some embodiments, multiple actuators such as eccentricrotating mass motors and linear resonant actuators can be used alone orin concert to provide different textures and other haptic effects.

In still other embodiments, haptic output device 118 may useelectrostatic force, for example, by use of an electrostatic surfaceactuator, to simulate a texture on the surface of touch surface 116.Similarly, in some embodiments, haptic output device 118 may useelectrostatic force to vary the friction the user feels on the surfaceof touch surface 116. For example, in one embodiment, haptic outputdevice 118 may comprise an electrostatic display or any other devicethat applies voltages and currents instead of mechanical motion togenerate a haptic effect. In such an embodiment, an electrostaticactuator may comprise a conducting layer and an insulating layer. Insuch an embodiment, the conducting layer may be any semiconductor orother conductive material, such as copper, aluminum, gold, or silver.And the insulating layer may be glass, plastic, polymer, or any otherinsulating material.

The processor 102 may operate the electrostatic actuator by applying anelectric signal to the conducting layer. The electric signal may be anAC signal that, in some embodiments, capacitively couples the conductinglayer with an object near or touching touch surface 116. In someembodiments, the AC signal may be generated by a high-voltage amplifier.In other embodiments the capacitive coupling may simulate a frictioncoefficient or texture on the surface of the touch surface 116. Forexample, in one embodiment, the surface of touch surface 116 may besmooth, but the capacitive coupling may produce an attractive forcebetween an object near the surface of touch surface 116. In someembodiments, varying the levels of attraction between the object and theconducting layer can vary the simulated texture on an object movingacross the surface of touch surface 116 or vary the coefficient offriction felt as the object moves across the surface of touch surface116. Furthermore, in some embodiments, an electrostatic actuator may beused in conjunction with traditional actuators to vary the simulatedtexture on the surface of touch surface 116. For example, the actuatorsmay vibrate to simulate a change in the texture of the surface of touchsurface 116, while at the same time, an electrostatic actuator maysimulate a different texture, or other effects, on the surface of touchsurface 116 or on another part of the computing device 101 (e.g., itshousing or another input device).

In some embodiments, an electrostatic actuator may be used to generate ahaptic effect by stimulating parts of the body near or in contact withthe touch surface 116. For example, in some embodiments, anelectrostatic actuator may stimulate the nerve endings in the skin of auser's finger or components in a stylus that can respond to theelectrostatic actuator. The nerve endings in the skin, for example, maybe stimulated and sense the electrostatic actuator (e.g., the capacitivecoupling) as a vibration or some more specific sensation. For example,in one embodiment, a conducting layer of an electrostatic actuator mayreceive an AC voltage signal that couples with conductive parts of auser's finger. As the user touches the touch surface 116 and moves hisor her finger on the touch surface, the user may sense a texture ofprickliness, graininess, bumpiness, roughness, stickiness, or some othertexture.

Turning to memory 104, exemplary program components 124, 126, and 128are depicted to illustrate how a device can be configured in someembodiments to design haptic effects using speech commands. In thisexample, a detection module 124 configures processor 102 to monitorsignals received from audio capture device 117 to determine if vocaluser interaction has been received. For example, module 124 may sampleaudio capture device 117 to determine the presence or absence of vocaluser interaction, e.g., speech describing a haptic effect. Further, insome embodiments, detection module 124 may further monitor input fromsensor(s) 108, which may represent interaction on a graphical userinterface to activate monitoring for an vocal user interaction. Further,in some embodiments, detection module 124 may monitor input from audiocapture device 117 to determine the presence of a trigger word to beginmonitoring for speech describing haptic effects. For example, in oneembodiment, such a trigger word may comprise a phrase such as: “createhaptic effect.”

Detection element 124 may comprise programming to understand spokenwords in the audible effect, e.g., Automatic Speech Recognition (ASR)techniques or speech-to-text, such as Hidden Markov Model (HMM),Gaussian Mixture Model (GMM), Deep Learning etc. Further, in anotherembodiment, rather than extracting full words, the detection element 124may instead be configured to extract only features of the audible input,e.g., low level audio features, Mel-Frequency Cepstrum (MFC),mel-frequency analysis, Zero-Crossing Rate (ZCR), etc. and/or high levelfeatures extracted using a pre-trained deep learning network (VGGish,AlexNet, LSTM, RNN, etc.). Detection element 124 may further comprisefunctionality to apply tags to text to enable database searching. Forexample, tags may be applied to specific known words, e.g., wordsassociated with haptic effects, such as “frequency” or with types ofeffects, e.g., “explosion.”

In some embodiments, database and computing device 101 may comprisefunctionality to enable the user to store haptic effects. Further, theuser may enhance the database by applying new tags to haptic effects toenable faster and more efficient searching. For example, in oneembodiment, when the user experiences a haptic effect, the user may beable to create a new tag associated with the haptic effect. This new tagmay be descriptive of the haptic effect, e.g., “50 Hz square wave withhard bang,” “space shuttle liftoff,” etc., to enable the database to besearched more easily and efficiently. Further, in some embodiments, theuser may be able to apply tags to video and/or audio segments withassociated haptic effects to further enhance the searchability of thedatabase.

In yet another embodiment the haptic effect can be related to a content(Audio and/or Video) and the content itself may be tagged with keywords.In yet another embodiment the system can use a pre-trained machinelearning model to associate tags/labels with haptic effects and audiocontent. For example, in such an embodiment, the database or a computingsystem associated with the database may automatically tag hapticeffects, images, videos, or audio files by comparing features associatedwith the haptic effects, images, videos, or audio files to other hapticeffects, images, videos, or audio files with tagged effects. Further, insome embodiments, the relationship between effects may be associatedwith a single object, e.g., “trains,” “airplanes,” “explosions,” etc.Alternatively, tags may comprise characteristics of the effect (e.g.“sharp and short haptic effect,” “muddy moderate effect”). Further, inthe case of more discrete characteristics, e.g., “30 HZ at 20%magnitude,” the tagging can also be applied using simple heuristicmethods.

Haptic effect determination module 126 represents a program componentthat analyzes audio data received from audio capture device 117 toselect a haptic effect to generate. For example, in one embodiment,module 126 comprises code that determines, based on the audibleinteraction, a haptic effect to generate. For example, module 126 maycomprise program code configured to determine one or more of: afrequency, amplitude, wave-type, duty cycle, a grain size, graindensity, max grain per cycle, and/or grain magnitude for a hapticsignal, based in part on audible interaction. Alternatively, in someembodiments, haptic effect determination module 126 may comprise one ormore preloaded haptic effects, e.g., haptic effects associated withparticular objects in a VR or AR environment. These haptic effects maycomprise any type of haptic effect that haptic output device(s) 118 arecapable of generating.

In some embodiments, haptic effect determine module 126 comprises, orhas access to, a database of predetermined haptic effects, or code toaccess a local or remote database of predetermined haptic effects. Insuch an embodiment, haptic effect determination module 126 may beconfigured to search the database for haptic effects matching a desiredcharacteristic of the haptic effect. The database of haptic effects maycomprise tagged keywords which makes associating effects to objects andactions easy. These keywords may match the keywords described above withregard to determination module 124, thus enabling easier databasesearching. For example, the determination module 126 may search thedatabase for haptic effects that match tags determined by determinationmodule 124. In such an embodiment, if many tags are identified, thehaptic effect determination module 126 may search for haptic effectshaving a larger number of the tags. Further, the haptic effectdetermination module 126 may identify haptic effects with at least onematching tag, but prioritize haptic effects with a larger number of thetags. For example, in some embodiments, the system may determine thedistance between features by calculating a distance vector betweenfeatures. In some embodiments, these distance vectors can be estimatedas an Euclidean or Mahalanobis distance. In other embodiments, inputfeatures may classified against the DB elements features (e.g., usingKNN, SVM etc.).

Further, in some embodiments, module 126 may comprise program codeconfigured to manipulate characteristics of a haptic effect, e.g., theeffect's intensity, frequency, duration, duty cycle, or any othercharacteristic associated with a haptic effect. In some embodiments,module 126 may comprise program code to allow the user to manipulatethese characteristics, e.g., via audible interaction from audio capturedevice 117, interaction with a user interface such as a button,touchscreen, and/or graphical user interface.

Haptic effect generation module 128 represents programming that causesprocessor 102 to generate and transmit a haptic signal to haptic outputdevice 118, which causes haptic output device 118 to generate theselected haptic effect. For example, generation module 128 may accessstored waveforms or commands to send to haptic output device 118. Asanother example, haptic effect generation module 128 may receive adesired type of effect and utilize signal processing algorithms togenerate an appropriate signal to send to haptic output device 118. As afurther example, a desired effect may be indicated along with targetcoordinates for the haptic effect and an appropriate waveform sent toone or more actuators to generate appropriate displacement of thesurface (and/or other device components) to provide the haptic effect.Some embodiments may utilize multiple haptic output devices in concertto output a haptic effect.

A touch surface may overlay (or otherwise correspond to) a display,depending on the particular configuration of a computing system. In FIG.1B, an external view of a computing system 100B is shown. Computingdevice 101 includes a touch enabled display 116 that combines a touchsurface and a display of the device. The touch surface 116 maycorrespond to the display exterior or one or more layers of materialabove the actual display components.

FIG. 1C illustrates another example of a touch enabled computing system100C in which the touch surface does not overlay a display. In thisexample, a computing device 101 features a touch surface 116 which maybe mapped to a graphical user interface provided in a display 122 thatis included in computing system 120 interfaced to device 101. Forexample, computing device 101 may comprise a mouse, trackpad, or otherdevice, while computing system 120 may comprise a desktop or laptopcomputer, set-top box (e.g., DVD player, DVR, cable television box), oranother computing system. As another example, touch surface 116 anddisplay 122 may be disposed in the same device, such as a touch enabledtrackpad in a laptop computer featuring display 122. Whether integratedwith a display or otherwise, the depiction of planar touch surfaces inthe examples herein is not meant to be limiting. Other embodimentsinclude curved or irregular touch enabled surfaces that are furtherconfigured to provide haptic effects.

FIGS. 2A-2B illustrate an example embodiment of a device for designinghaptic effects using speech commands. FIG. 2A is a diagram illustratingan external view of a system 200 comprising a computing device 201 thatfeatures a touch-enabled display 202. FIG. 2B shows a cross-sectionalview of device 201. Device 201 may be configured similarly to device 101of FIG. 1A, though components such as the processor, memory, sensors,and the like are not shown in this view for purposes of clarity.

As can be seen in FIG. 2B, device 201 features a plurality of hapticoutput devices 218 and an additional haptic output device 222. Hapticoutput device 218-1 may comprise an actuator configured to impartvertical force to display 202, while 218-2 may move display 202laterally. In this example, the haptic output devices 218, 222 arecoupled directly to the display, but it should be understood that thehaptic output devices 218, 222 could be coupled to another touchsurface, such as a layer of material on top of display 202. Furthermore,it should be understood that one or more of haptic output devices 218 or222 may comprise an electrostatic actuator, as discussed above.Furthermore, haptic output device 222 may be coupled to a housingcontaining the components of device 201. In the examples of FIGS. 2A-2B,the area of display 202 corresponds to the touch area, though theprinciples could be applied to a touch surface completely separate fromthe display.

In one embodiment, haptic output devices 218 each comprise apiezoelectric actuator, while additional haptic output device 222comprises an eccentric rotating mass motor, a linear resonant actuator,or another piezoelectric actuator. Haptic output device 222 can beconfigured to provide a vibrotactile haptic effect in response to ahaptic signal from the processor. The vibrotactile haptic effect can beutilized in conjunction with surface-based haptic effects and/or forother purposes.

In some embodiments, either or both haptic output devices 218-1 and218-2 can comprise an actuator other than a piezoelectric actuator. Anyof the actuators can comprise a piezoelectric actuator, anelectromagnetic actuator, an electroactive polymer, a shape memoryalloy, a flexible composite piezo actuator (e.g., an actuator comprisinga flexible material), electrostatic, and/or magnetostrictive actuators,for example. Additionally, haptic output device 222 is shown, althoughmultiple other haptic output devices can be coupled to the housing ofdevice 201 and/or haptic output devices 222 may be coupled elsewhere.Device 201 may feature multiple haptic output devices 218-1/218-2coupled to the touch surface at different locations, as well.

Turning now to FIG. 3A, FIG. 3A illustrates another example embodimentfor designing haptic effects using speech commands according to oneembodiment of the present disclosure. FIG. 3A comprises an electronicdevice 300, which may comprise a smartphone or tablet. The electronicdevice 300 comprises a touch-screen display 302, and an audio inputdevice. As shown in FIG. 3A, the electronic device 300 has receivedaudio input, and displayed a graphic 304 associated with the audioinput. In some embodiments, this graphic 304 may comprise a waivepattern as would be displayed by an oscilloscope measuring the audiosignal. Alternatively, the graphic 304 may comprise a preexisting iconused for all haptic effects. Once the audio signal is received, theelectronic device 300 is configured to process the audio signal anddetermine a haptic effect associated with the audio signal.

In one embodiment, the audio input may comprise a description of aspecific type of object that the haptic effect should be associatedwith. For example, the user may tell the electronic device 300 to createa haptic effect related to a specific object or concept (e.g., rain) oraction (e.g., man hitting a ball). In such an embodiment, the electronicdevice 300 will recognize the speech input of the user and then fetchthe appropriate effects from a local or remote database given thekeywords identified in the user command. As described above, hapticeffects in the database may be tagged with keywords or tags, which makesassociating effects with data associated with objects or actions fastand efficient.

In another embodiment, the user can provide a high level description ofthe effect. For example, the user may describe a haptic effect in termsof, e.g., wave shape/rhythm (e.g., ramping up), intensity (e.g.,strong), type (e.g., texture), duration (e.g., short) etc. In such anembodiment, the electronic device 300 will recognize the speech inputand fetch from a database a haptic effect with the characteristics ortags that the user described. In another embodiment the systemrecognizes the characteristics and creates a haptic effect or hapticsignal that matches the description provided by the user.

In yet another embodiment, the designer describes the haptic effectusing sounds mimicking an action. In such an embodiment, the electronicdevice 300 will capture the sound, e.g., “BOOM,” and identify itscharacteristics, and/or its nature (e.g., explosion). The system 300then replicates these characteristics in the form of a haptic effectand/or fetches an effect with the appropriate tags or description. Inyet another embodiment, the electronic device 300 will capture the soundand search a database for a similar sound and return haptic effectsassociated with this sound from the database.

Turning now to FIG. 3B, FIG. 3B illustrates another example embodimentfor designing haptic effects using speech commands according to oneembodiment of the present disclosure. As shown in FIG. 3B, theelectronic device 300 outputs the haptic effect using one or more hapticoutput devices. The electronic device then gives the user the option toaccept the haptic effect 306. The user may then accept the hapticeffect, either using an interface with the electronic device or by usingaudio input, e.g., speaking a phrase to confirm acceptance of the hapticeffect. The language and design shown in system 300 is one exampleembodiment. Other language to accept a haptic effect may be displayed orused to confirm a acceptance of a haptic effect.

In some embodiments, the user may reject the haptic effect and restartthe process of creating the haptic effect. Further, in some embodiments,the user may modify the created haptic effect. For example, the user maymodify the created haptic effect using voice commands, e.g., “higherfrequency,” “lower amplitude,” “include hard stop at end,” etc. Thesystem 300 is configured to receive this audio input, recognize it, andmodify the haptic effect according to the user's description.

Illustrative Methods for Designing Haptic Effects Using Speech Commands

FIGS. 4 and 5 are flow charts of steps for performing a method fordesigning haptic effects using speech commands according to oneembodiment. In some embodiments, the steps in FIGS. 4 and 5 may beimplemented in program code that is executed by a processor, forexample, the processor in a general purpose computer, a mobile device,virtual reality control system, or a server. In some embodiments, thesesteps may be implemented by a group of processors. In some embodimentsone or more steps shown in FIG. 4 or 5 may be omitted or performed in adifferent order. Similarly, in some embodiments, additional steps notshown in FIG. 4 or 5 may also be performed. The steps below aredescribed with reference to components described above with regard tocomputing device 101 shown in FIG. 1A.

The method 400 begins at step 402 when processor 102 receives an audiosignal. The audio signal comprises audible user input, which is detectedby audio capture device 117, which then transmits a signal associatedwith the audible user input to processor 102. The audible user input isassociated with a desired haptic effect. For example, the audible userinput may describe one or more of: a description of a desired waveform(e.g., speech describing one or more of: a wave shape, a frequency, anintensity, a type (e.g., vibration, friction, deformation, etc.), or aduration), a description of a concept or object associated with thedesired haptic effect (e.g., impact, explosion, or rain), or a soundthat mimics the desired haptic effect (e.g., BOOM, BANG, etc.). Further,in some embodiments the audible interaction may comprise a mix of theembodiments described above. For example, a user may describe an effectby saying: “provide an explosion effect with BOOM of 200 ms at fullmagnitude and a 50 Hz frequency.”

At step 404 processor 102 determines a haptic effect based on the audiointeraction described above. The processor 102 may be configured todetermine a haptic effect that matches the vocal user interactiondetected at step 402. In some embodiments, the processor 102 maydetermine a new haptic effect, identify a pre-existing haptic effect(e.g., by searching a database), or determine a modification to apre-existing haptic effect. Additional steps the processor 102 may taketo determine the haptic effect are discussed with regard to method 500below.

At step 406 processor 102 outputs a haptic signal to haptic outputdevice 118, which outputs the haptic effect. The haptic signal maycomprise one or more signals output to one or more haptic output devices118, which are configured to receive the haptic signal(s) and output ahaptic effect that corresponds to the desired haptic effect.

At step 408 the processor 102 receives user input. For example, in someembodiments, the processor 102 may be configured to allow the user toconfirm that the determined haptic effect is correct. In such anembodiment, the processor 102 may output a haptic signal to hapticoutput device 118, which outputs the haptic effect. Then processor 102may be configured to receive user input confirming that the hapticeffect is correct. This user input may comprise vocal user interactiondetected by audio input device 117, or it may comprise user interactionvia a traditional user interface, e.g., a touchscreen. Further, if theuser input indicates that the haptic effect is incorrect, the processor102 may be configured to modify the haptic effect based on user input.For example, the user may provide input to change one or morecharacteristics of the haptic effect, e.g., to change the effect'sintensity, frequency, duration, duty cycle, or any other characteristicassociated with a haptic effect. The processor 102 may be configured tomake this change and then output the modified haptic signal to thehaptic output device 118.

At step 410 the processor 102 stores the haptic effect. The processormay be configured to store the haptic effect in a local memory 104.Alternatively, the processor 102 may be configured to store the hapticeffect in a remote data store and/or a database of haptic effects.Further, in some embodiments, the processor 102 may be configured toapply a tag or other descriptor to the haptic effect. This tag maycomprise a higher-level description of the effect (e.g., hard rain, softcollision, ping-pong balls, etc.) or a lower-level description of thehaptic effect (e.g., type of effect, frequency, and amplitude). In someembodiments, this tag may enable easier searching for the haptic effectby other devices.

Turning now to FIG. 5, which depicts method 500 of additional steps fordetermining a haptic effect. The method 500 begins at step 502, whenprocessor 102 determines the content of an audio signal. For example,the processor 102 may be configured to understand spoken-language in thevocal user interaction, e.g., using one or more of Automatic SpeechRecognition (ASR) techniques or speech-to-text, such as Hidden MarkovModel (HMM), Gaussian Mixture Model (GMM), Deep Learning etc. Further,in another embodiment, rather than extracting full words, the processor102 may instead be configured to extract only features of the audibleinput, e.g., low level audio features, Mel-Frequency Cepstrum (MFC),mel-frequency analysis, Zero-Crossing Rate (ZCR), etc. and/or high levelfeatures extracted using a pre-trained deep learning network (VGGish,AlexNet, LSTM, RNN, etc.).

At step 504 the processor 102 searches a database to identify a hapticeffect. The database may comprise a remote or local database. Thedatabase may comprise haptic effects, and the processor 102 may searchthe database for an appropriate haptic effect matching the vocal userinteraction. Alternatively, the database may comprise audio and/or videofiles comprising associated haptic effects. In such an embodiment, theprocessor 102 may search the database for a file that corresponds to thevocal user interaction. The processor 102 may then determine that thehaptic effect associated with that corresponding file is a matchinghaptic effect. Further, in some embodiments, the processor 102 may beconfigured to determine a modification to a haptic effect in thedatabase in order to match the user's description. For example, theprocessor 102 may identify a haptic effect associated with an explosionin the database. The processor 102 may then modify this haptic effect tomatch the user's description of a large explosion with a square waive ata 70% duty cycle.

There are numerous advantages of designing haptic effects using speechcommands. Embodiments disclosed herein may ease the process fordesigning haptic effects. For example, a designer may not requirespecialized knowledge to design haptic effects. Further, embodimentsdescribed herein provide for creating and searching a database ofexisting haptic effects. This may make design and implementing hapticeffects more efficient. This may increase the number of devices thatinclude haptic effects. This may lead to a more compelling hapticexperience for the user and a more efficient process for the designer.

General Considerations

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process that is depicted as aflow diagram or block diagram. Although each may describe the operationsas a sequential process, many of the operations can be performed inparallel or concurrently. In addition, the order of the operations maybe rearranged. A process may have additional steps not included in thefigure. Furthermore, examples of the methods may be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware, or microcode, the program code or codesegments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the presentdisclosure. Also, a number of steps may be undertaken before, during, orafter the above elements are considered. Accordingly, the abovedescription does not bound the scope of the claims.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

Embodiments in accordance with aspects of the present subject matter canbe implemented in digital electronic circuitry, in computer hardware,firmware, software, or in combinations of the preceding. In oneembodiment, a computer may comprise a processor or processors. Theprocessor comprises or has access to a computer-readable medium, such asa random access memory (RAM) coupled to the processor. The processorexecutes computer-executable program instructions stored in memory, suchas executing one or more computer programs including a sensor samplingroutine, selection routines, and other routines to perform the methodsdescribed above.

Such processors may comprise a microprocessor, a digital signalprocessor (DSP), an application-specific integrated circuit (ASIC),field programmable gate arrays (FPGAs), and state machines. Suchprocessors may further comprise programmable electronic devices such asPLCs, programmable interrupt controllers (PICs), programmable logicdevices (PLDs), programmable read-only memories (PROMs), electronicallyprogrammable read-only memories (EPROMs or EEPROMs), or other similardevices.

Such processors may comprise, or may be in communication with, media,for example tangible computer-readable media, that may storeinstructions that, when executed by the processor, can cause theprocessor to perform the steps described herein as carried out, orassisted, by a processor. Embodiments of computer-readable media maycomprise, but are not limited to, all electronic, optical, magnetic, orother storage devices capable of providing a processor, such as theprocessor in a web server, with computer-readable instructions. Otherexamples of media comprise, but are not limited to, a floppy disk,CD-ROM, magnetic disk, memory chip, ROM, RAM, ASIC, configuredprocessor, all optical media, all magnetic tape or other magnetic media,or any other medium from which a computer processor can read. Also,various other devices may include computer-readable media, such as arouter, private or public network, or other transmission device. Theprocessor, and the processing, described may be in one or morestructures, and may be dispersed through one or more structures. Theprocessor may comprise code for carrying out one or more of the methods(or parts of methods) described herein.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

What is claimed:
 1. A system comprising: a processor configured to:receive an audio signal from an audio capture device, the audio signalassociated with vocal user interaction, wherein the vocal userinteraction comprises sounds mimicking a desired haptic effect;determine a haptic effect based in part on the audio signal andassociated with the sounds mimicking the desired haptic effect, thehaptic effect configured to be output by a haptic output device; andstore the haptic effect on a data store.
 2. The system of claim 1,wherein the vocal user interaction further comprises spoken words, andwherein the processor is further configured to determine a content ofthe spoken words.
 3. The system of claim 2, wherein the content of thespoken words comprises a description of characteristics of a desiredhaptic effect, and wherein determining the haptic effect furthercomprises determining a haptic signal with characteristics of thedesired haptic effect.
 4. The system of claim 3, wherein thecharacteristics of the desired haptic effect comprise one or more of: awave shape, a frequency, an intensity, a type, or a duration.
 5. Thesystem of claim 2, wherein the content of the spoken words comprises aconcept associated with a desired haptic effect, and wherein determiningthe haptic effect further comprises searching a database comprising dataassociated with a plurality of haptic effects for a stored haptic effectassociated with the concept.
 6. The system of claim 1, wherein theprocessor is further configured to output a haptic signal associatedwith the haptic effect to the haptic output device.
 7. The system ofclaim 6, wherein the processor is further configured to receive an inputsignal associated with user interaction confirming the haptic effectprior to storing the haptic effect on the data store.
 8. The system ofclaim 6, wherein the haptic output device comprises one or more of: apiezoelectric actuator, an electric motor, an electro-magnetic actuator,a voice coil, a shape memory alloy, an electro-active polymer, asolenoid, an eccentric rotating mass motor (ERM), or a linear resonantactuator (LRA).
 9. A method comprising: receiving an audio signal froman audio capture device, the audio signal associated with vocal userinteraction, wherein the vocal user interaction comprises soundsmimicking a desired haptic effect; determining a haptic effect based inpart on the audio signal and associated with the sounds mimicking thedesired haptic effect, the haptic effect configured to be output by ahaptic output device; and storing the haptic effect on a data store. 10.The method of claim 9, wherein the vocal user interaction furthercomprises spoken words, and wherein the method further comprisesdetermining a content of the spoken words.
 11. The method of claim 10,wherein the content of the spoken words comprises a description ofcharacteristics of a desired haptic effect, and wherein determining thehaptic effect further comprises determining a haptic signal withcharacteristics of the desired haptic effect.
 12. The method of claim11, wherein the characteristics of the desired haptic effect compriseone or more of: a wave shape, a frequency, an intensity, a type, or aduration.
 13. The method of claim 10, wherein the content of the spokenwords comprises a concept associated with a desired haptic effect, andwherein determining the haptic effect further comprises searching adatabase comprising data associated with a plurality of haptic effectsfor a stored haptic effect associated with the concept.
 14. The methodof claim 9, further comprising outputting a haptic signal associatedwith the haptic effect to the haptic output device.
 15. The method ofclaim 14, further comprising receiving an input signal associated withuser interaction confirming the haptic effect prior to storing thehaptic effect on the data store.
 16. A non-transitory computer readablemedium comprising program code, which when executed by a processor isconfigured to cause the processor to: receive an audio signal from anaudio capture device, the audio signal associated with vocal userinteraction, wherein the vocal user interaction comprises soundsmimicking a desired haptic effect; determine a haptic effect based inpart on the audio signal and associated with the sounds mimicking thedesired haptic effect, the haptic effect configured to be output by ahaptic output device; and store the haptic effect on a data store. 17.The non-transitory computer readable medium of claim 16, wherein thevocal user interaction further comprises spoken words, and wherein theprocessor is further configured to determine a content of the spokenwords.
 18. The non-transitory computer readable medium of claim 17,wherein the content of the spoken words comprises a description ofcharacteristics of a desired haptic effect, and wherein determining thehaptic effect further comprises determining a haptic signal with thecharacteristics of the desired haptic effect.
 19. The system of claim 1,wherein determining the haptic effect comprises receiving a signalassociated with a preexisting haptic effect and modifying the signal tomatch the desired haptic effect.
 20. The method of claim 9, whereindetermining the haptic effect comprises receiving a signal associatedwith a preexisting haptic effect and modifying the signal to match thedesired haptic effect.